package com.ibeeking.gmc.global.g.rest.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ibeeking.found.common.entity.ShortUrlDTO;
import com.ibeeking.found.common.entity.ShortUrlQueryFeign;
import com.ibeeking.gmc.global.service.common.dos.ShortUrlDO;
import com.ibeeking.gmc.global.service.common.param.ShortUrlParam;
import com.ibeeking.gmc.global.service.common.query.ShortUrlPageQuery;
import com.ibeeking.gmc.global.service.common.query.ShortUrlQuery;
import com.ibeeking.gmc.global.service.common.vo.ShortUrlVO;

import java.util.List;

public interface IShortUrlService extends IService<ShortUrlDO> {

    /***
     * 查询列表
     */
    List<ShortUrlVO> list(ShortUrlQuery query);

    /***
     * 查询列表
     */
    List<ShortUrlDTO> queryListByTenantId(Integer tenantId);

    /***
     * 查询列表
     */
    List<ShortUrlDTO> queryShortUrlList(ShortUrlQueryFeign query);

    /**
     * 分页条件查询
     * @param pageQuery
     * @return
     */
    Page<ShortUrlVO> pageList(ShortUrlPageQuery pageQuery);

    /**
     * 添加
     * @param param
     * @return
     */
    Boolean add(ShortUrlParam param);

    /**
     * 修改
     * @param param
     * @return
     */
    Boolean modify(ShortUrlParam param);

    /**
     * 根据id删除
     * @param id
     * @return
     */
    Boolean del(Long id);


    /**
     * 根据id查看详情
     * @param id
     * @return
     */
    ShortUrlVO view(Long id);

    /**
     * @param shorterKey
     * @return
     */
    ShortUrlDTO queryByShorterKey(Integer tenantId, String shorterKey);

    /**
     * @param query
     * @return
     */
    ShortUrlDTO queryShortUrlOne(ShortUrlQueryFeign query);
}
